;汇编环境：Visual Studio Community 2019 版本 16.9.3
;配置方法：（1） 新建“Win32控制台项目”——>“空项目”，在解决方案资源管理器中，
;			右键选择“生成依赖项”——>“生成自定义”，勾选 masn
;		   （2 ） 在项目“属性”——>"链接器"——>“高级”中，填写入口点
;			本示例代码的入口点为 main
.586
.model flat,stdcall
option casemap:none

includelib ucrt.lib
includelib legacy_stdio_definitions.lib
includelib User32.lib
includelib Kernel32.lib

MessageBoxA PROTO hWnd:DWORD,lpText:BYTE,lpCaption:BYTE,uType:DWORD
ExitProcess PROTO uType:DWORD
extern printf:proc
extern putchar:proc
extern scanf:proc

.data
szStr1 db 'Rkvir1',0
szStr2 db 'Rkvir2',0
fmt db '%s', 0ah,'%s', 0
fmt_num db '%d', 0
num dd ?

.code
main proc
	; scanf("%d", &num);	
	lea eax, num
	push eax
	lea eax, fmt_num
	push eax
	call scanf
	add esp, 8		; __cdecl

	; printf("%d", num);
	push num
	lea eax, fmt_num
	push eax
	call printf
	add esp, 8		; __cdecl

	; putchar('\n');
	push 0ah
	call putchar	; __cdecl
	add esp, 4		; balance stack
	
	; printf("%s\n%s", "Rkvir2", "Rkvir1");
	lea eax, szStr1
	push eax
	lea eax, szStr2
	push eax
	lea eax, fmt
	push eax
	call printf		; __cdecl
	add esp, 12		; balance stack
	
	;MessageBoxA
	push 1
	lea eax, szStr1
	push eax
	lea eax, szStr2
	push eax
	push 0
	call MessageBoxA

	;ExitProcess
	push 0
	call ExitProcess
main endp
end